#define _CRT_SECURE_NO_WARNINGS
#include"SeqList.h"

void TestSL1()
{
	SL s1;
	SLInit(&s1);
	SLPushBack(&s1, 1);
	SLPushBack(&s1, 2);
	SLPushBack(&s1, 3);
	SLPushBack(&s1, 4);
	SLPushBack(&s1, 5);
	SLPushBack(&s1, 6);
	SLPushBack(&s1, 7);
	SLPushBack(&s1, 8);
	SLPushBack(&s1, 9);

	SLPrint(&s1);

	SLPushFront(&s1, 10);
	SLPushFront(&s1, 20);
	SLPushFront(&s1, 30);
	SLPushFront(&s1, 40);

	SLPrint(&s1);

	SLDestroy(&s1);
}

void TestSL2()
{
	SL s1;
	SLInit(&s1);
	SLPushBack(&s1, 1);
	SLPushBack(&s1, 2);
	SLPushBack(&s1, 3);
	SLPushBack(&s1, 4);
	SLPushBack(&s1, 5);
	
	SLPrint(&s1);

	SLPopBack(&s1);
	
	SLPrint(&s1);

	SLDestroy(&s1);
}

void TestSL3()
{
	SL s1;
	SLInit(&s1);
	SLPushBack(&s1, 1);
	SLPushBack(&s1, 2);
	SLPushBack(&s1, 3);
	SLPushBack(&s1, 4);
	SLPushBack(&s1, 5);

	SLPrint(&s1);

	SLPopFront(&s1);
	SLPopFront(&s1);
	SLPopFront(&s1);
	SLPopFront(&s1);

	SLPrint(&s1);
}

void TestSL4()
{
	SL s1;
	SLInit(&s1);
	SLPushBack(&s1, 1);
	SLPushBack(&s1, 2);
	SLPushBack(&s1, 3);
	SLPushBack(&s1, 4);
	SLPushBack(&s1, 5);

	SLPrint(&s1);

	SLInsert(&s1, 4, 10);

	SLPrint(&s1);

	SLErase(&s1, 2);

	SLPrint(&s1);

	int pos = SLFind(&s1, 3);
	if (pos != -1)
	{
		SLErase(&s1, pos+1);
	}
	SLPrint(&s1);
}

int main()
{
	//TestSL1();
	//TestSL2();
	//TestSL3();
	TestSL4();

	return 0;
}